FIG. 1 depicts a schematic diagram of a telecommunications network in the prior art, such as the Internet, which transports data packets from one node to another. Each endpoint, server, router, or other device that is capable of transmitting and/or receiving packets in the network is generically referred to as a “network node,” or simply “node.” A node that originates one or more packets, as part of a packet stream, is referred to as a “source node,” and a node that acts as the terminus for a packet stream is referred to as a “destination node.” For the purposes of this specification, a “network path” is defined as the physical route between a pair of source and destination nodes in a network.
The service provided by a network path is characterized by its “quality of service,” which, for the purposes of this specification, is defined as a function of one or more of the bandwidth, error rate, and latency from one node to another. For the purposes of this specification, the “bandwidth” from one node to another is defined as an indication of the amount of information per unit time that can be transported from the first node to the second. Typically, bandwidth is measured in bits or bytes per second. For the purposes of this specification, the “error rate” from one node to another is defined as an indication of the amount of information that is corrupted as it travels from the first node to the second. Typically, error rate is measured in bit errors per number of bits transmitted or in packets lost per number of packets transmitted. For the purposes of this specification, the “latency” from one node to another is defined as an indication of how much time is required to transport information from one node to another. Typically, latency is measured in seconds.
In the transmission of any packet stream, there is a source node and a destination node. The two nodes can be the same type of device, such as two Voice-over-Internet-Protocol (VoIP) telephone clients communicating with each other, or can be different devices, such as a browser-equipped personal computer and a web server. Of course, the source node for one packet stream can be the destination node for another packet stream.
Some applications—e-mail, for example—are generally more tolerant of the quality of service provided by the network path, but some other applications—particularly VoIP telephony and streaming audio and video—are generally very sensitive and, as such, require a minimum quality of service to be present in the transmission path from source node to destination node.
Because the transmission path comprises the physical resources to ensure adequate operation in the worst case and because the network does not usually operate under the worst-case conditions, more resources are allocated to the transmission path than, on average, are necessary. This can result in a waste of transmission resources and money. Although various resource-allocation techniques, such as the pooling of a specific type of resource, can be employed to reduce this waste, some inefficiency still remains.
The need exists, therefore, for an invention that improves the utilization of resources during the transmission of a packet stream, without some of the disadvantages in the prior art.